#coding=utf-8
import sys
import math
print("hello world")
print("你好，世界")

#第一个注释
if True:
    print("true")
else:
    print("false")

''' 
这是多选
是吗
佳木斯地
'''

# raw_input("\n\nPress the enter key to exit.")

x = "haha"
sys.stdout.write(x + "\n" + "baichi")

print("")
#不换行输出
print("aa"),
print("bb")
print("cc")

tuple = ('runoob', 786, 2.23, 'john', 70.2)
tinytuple = (123, 'john')

print(tuple)  # 输出完整元组
print(tuple[0])  # 输出元组的第一个元素
print(tuple[1:3])  # 输出第二个至第三个的元素
print(tuple[2:])  # 输出从第三个开始至列表末尾的所有元素
print(tinytuple * 2)  # 输出元组两次
print(tuple + tinytuple)  # 打印组合的元组

dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"

tinydict = {'name': 'john', 'code': 6734, 'dept': 'sales'}

print(dict['one'])  # 输出键为'one' 的值
print(dict[2])  # 输出键为 2 的值
print(tinydict)  # 输出完整的字典
print(tinydict.keys())  # 输出所有键
print(tinydict.values())  # 输出所有值

money = 2000
def addMoney():
    global money
    money = money + 1

print(money)
addMoney()
print(money)

content = dir(math)

print(content)

#下面测试调用Package
from model.runoob1 import test1
from model.runoob2 import test2

test1()
test2()

# str = raw_input("请输入：")
# print("你输入的内容是: ", str

#以下是打开文件测试
fo = open("data/foo.txt", "wb")
str = "www.runoob.com!\nVery good site!\n"
fo.write(bytes(str,encoding="utf8"))
fo.close()
print("文件名: ", fo.name)
print("是否已关闭 : ", fo.closed)
print("访问模式 : ", fo.mode)
print("末尾是否强制加空格 : ", fo.softspace)

# 打开一个文件
fo = open("data/foo.txt", "r+")
str = fo.read(10)
print("读取的字符串是 : ", str);
# 查找当前位置
position = fo.tell();
print("当前文件位置 : ", position)

# 把指针再次重新定位到文件开头
position = fo.seek(0, 0);
str = fo.read(10);
print("重新读取字符串 : ", str)
# 关闭打开的文件
fo.close()

import os
# 重命名文件test1.txt到test2.txt。
# os.rename("data/test1.txt", "data/test2.txt")
# 删除文件
# os.remove("data/test2.txt")
#新建一个目录
# os.mkdir("newdir")
#修改当前目录名称   TODO 这个报错
# os.chdir("haha")

print(os.getcwd());
try:
    os.rmdir("newdir")
except:
    print("Error: 没有找到文件夹：" + "newdir")
else:
    print("删除文件成功")

# 定义函数
def mye( level ):
    if level < 1:
        raise Exception("Invalid level!", level)
        # 触发异常后，后面的代码就不会再执行
    print("这行代码不会被执行")

try:
    mye(0)
except:#要是换成"Invalid level!"，则不会被执行
    print (1)
else:
    print (2)
finally:
    print ("最终要执行我")

from error.Networkerror import *
try:
    raise Networkerror("Bad hostname")
except Networkerror:
    print ("error")

#下面调用具体类
from Employee import *
em = Employee("jw",11)
em2 = Employee("haha",44)

em.displayEmployee()
em.displayCount()
print(em.empCount)
print(Employee.empCount)
# print em.__secretCount    不能访问 私有变量
# Python不允许实例化的类访问私有数据，但你可以使用 object._className__attrName 访问属性
print(em._Employee__secretCount)

# del em
# del em2

from child import *
child = Child()
child.setAttr("jwjwj")
print("child attr: ", child.getAttr())

